const unsigned char pattern16x16_type1[] = {
	  0,128, 32,160,  8,136, 40,168,  2,130, 34,162, 10,138, 42,170,
	192, 64,224, 96,200, 72,232,104,194, 66,226, 98,202, 74,234,106,
	 48,176, 16,144, 56,184, 24,152, 50,178, 18,146, 58,186, 26,154,
	240,112,208, 80,248,120,216, 88,242,114,210, 82,250,122,218, 90,
	 12,140, 44,172,  4,132, 36,164, 14,142, 46,174,  6,134, 38,166,
	204, 76,236,108,196, 68,228,100,206, 78,238,110,198, 70,230,102,
	 60,188, 28,156, 52,180, 20,148, 62,190, 30,158, 54,182, 22,150,
	252,124,220, 92,244,116,212, 84,254,126,222, 94,246,118,214, 86,
	  3,131, 35,163, 11,139, 43,171,  1,129, 33,161,  9,137, 41,169,
	195, 67,227, 99,203, 75,235,107,193, 65,225, 97,201, 73,233,105,
	 51,179, 19,147, 59,187, 27,155, 49,177, 17,145, 57,185, 25,153,
	243,115,211, 83,251,123,219, 91,241,113,209, 81,249,121,217, 89,
	 15,143, 47,175,  7,135, 39,167, 13,141, 45,173,  5,133, 37,165,
	207, 79,239,111,199, 71,231,103,205, 77,237,109,197, 69,229,101,
	 63,191, 31,159, 55,183, 23,151, 61,189, 29,157, 53,181, 21,149,
	255,127,223, 95,247,119,215, 87,253,125,221, 93,245,117,213, 85
};

const unsigned char pattern16x16_type2[] = {
	153,137,121,105,152,136,120,104,151,135,119,103,150,134,118,102,
	169, 25,  9, 89,168, 24,  8, 88,167, 23,  7, 87,166, 22,  6, 86,
	185, 41, 57, 73,184, 40, 56, 72,183, 39, 55, 71,182, 38, 54, 70,
	201,217,233,249,200,216,232,248,199,215,231,247,198,214,230,246,
	154,138,122,106,145,129,113, 97,144,128,112, 96,149,133,117,101,
	170, 26, 10, 90,161, 17,  1, 81,160, 16,  0, 80,165, 21,  5, 85,
	186, 42, 58, 74,177, 33, 49, 65,176, 32, 48, 64,181, 37, 53, 69,
	202,218,234,250,193,209,225,241,192,208,224,240,197,213,229,245,
	155,139,123,107,146,130,114, 98,147,131,115, 99,148,132,116,100,
	171, 27, 11, 91,162, 18,  2, 82,163, 19,  3, 83,164, 20,  4, 84,
	187, 43, 59, 75,178, 34, 50, 66,179, 35, 51, 67,180, 36, 52, 68,
	203,219,235,251,194,210,226,242,195,211,227,243,196,212,228,244,
	156,140,124,108,157,141,125,109,158,142,126,110,159,143,127,111,
	172, 28, 12, 92,173, 29, 13, 93,174, 30, 14, 94,175, 31, 15, 95,
	188, 44, 60, 76,189, 45, 61, 77,190, 46, 62, 78,191, 47, 63, 79,
	204,220,236,252,205,221,237,253,206,222,238,254,207,223,239,255
};

const unsigned char pattern16x16_type3[] = {
	  0, 32,224,192,  2, 34,226,194, 14, 46,238,206, 12, 44,236,204,
	128,160, 80,112,130,162, 82,114,142,174, 94,126,140,172, 92,124,
	240,208, 16, 48,242,210, 18, 50,254,222, 30, 62,252,220, 28, 60,
	 64, 96,144,176, 66, 98,146,178, 78,110,158,190, 76,108,156,188,
	  8, 40,232,200, 10, 42,234,202,  5, 37,229,197,  7, 39,231,199,
	136,168, 88,120,138,170, 90,122,133,165, 85,117,135,167, 87,119,
	248,216, 24, 56,250,218, 26, 58,245,213, 21, 53,247,215, 23, 55,
	 72,104,152,184, 74,106,154,186, 69,101,149,181, 71,103,151,183,
	 15, 47,239,207, 13, 45,237,205,  1, 33,225,193,  3, 35,227,195,
	143,175, 95,127,141,173, 93,125,129,161, 81,113,131,163, 83,115,
	255,223, 31, 63,253,221, 29, 61,241,209, 17, 49,243,211, 19, 51,
	 79,111,159,191, 77,109,157,189, 65, 97,145,177, 67, 99,147,179,
	  4, 36,228,196,  6, 38,230,198,  9, 41,233,201, 11, 43,235,203,
	132,164, 84,116,134,166, 86,118,137,169, 89,121,139,171, 91,123,
	244,212, 20, 52,246,214, 22, 54,249,217, 25, 57,251,219, 27, 59,
	 68,100,148,180, 70,102,150,182, 73,105,153,185, 75,107,155,187
};

